package innerclass;

/**
 * 局部内部类
 */
public class LocalInnerClass {
    public static void main(String[] args) {
        Outer02 outer02 = new Outer02();
        outer02.m1();
    }
}

class Outer02{ // 外部类
    private int n1 = 100;
    private void m2(){}
    public void m1() { // 方法
        //1.局部内部类是定义在外部类的局部位置，通常在方法
        //3.不能添加访问修饰符，但是可以使用final修饰
        //4.作用域：仅仅在定义它的方法或代码块中
        final class Inner02 {//局部内部类
            private int n1 = 800;
            //2.可以直接访问外部类的所有成员，包含私有
            public void f1() {
                //Outer02.this本质上就是外部类的对象
                System.out.println("n1= " + Outer02.this.n1);
                m2();
            }
        }
        {//代码块
            class Inner03{

            }
        }

        //外部类在方法中，可以创建Inner02对象，然后调用方法即可
        Inner02 inner02 = new Inner02();
        inner02.f1();
    }
}

